//
//  UserSelectStatu.h
//  BukaLive
//
//  Created by 曹飞 on 2017/1/20.
//  Copyright © 2017年 曹飞. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface BKUserSelectStatu : NSObject

@property (nonatomic,strong) User * user;
@property (nonatomic,assign) NSInteger cupCount;    //奖励杯数量
@property (nonatomic,assign) BOOL isHansUp;         //举手状态
@property (nonatomic,assign) BOOL audioStatus;      //声音状态  废弃，使用user 扩展字段 里的属性
@property (nonatomic,assign) BOOL videoStatus;      //视频状态  废弃，使用user 扩展字段 里的属性
@property (nonatomic,assign) BOOL grantStatus;      //授权状态  废弃，使用user 扩展字段 里的属性
@property (nonatomic,assign) BOOL allMuteStatus;    //全体静音状态
@property (nonatomic,assign) BOOL videoResetStatus; //视频复位状态
@property (nonatomic,assign) BOOL hasStream;        //上麦是否发布了视频 ,主要是学生显示的UI
@property (nonatomic,assign) BOOL isOneBan;         //是否被单独禁止发文字

@end

/*各种控制中间解析模型*/
@interface BKPrivilege : NSObject

@property (nonatomic,assign) NSInteger person_mute;             //1为静音，0为非静音
@property (nonatomic,assign) NSInteger person_authorization;    //1为授权，0为非授权 个人静音和授权，当学生被老师下台（明确收到RPC_Stop_Speak =1006）或老师退出房间，需要把状态恢复。
@property (nonatomic,assign) NSInteger person_cup;              //奖杯个数，默认值为0
@property (nonatomic,assign) NSInteger person_speak;            //是否被禁言 0未禁 1禁言
@property (nonatomic,assign) NSInteger person_video_hide;       //1为隐藏，0为正常
@property (nonatomic,assign) NSInteger person_video;   //0打开 1关闭 //双师汇控用

@end

/*同步状态用的一个中间model ，状态最终形成BKUserSelectStatu*/
@interface BKToolStateModel: NSObject

@property (nonatomic,assign) NSInteger cupCount;    //奖励杯数量
@property (nonatomic,assign) NSInteger micState;    //mic状态
@property (nonatomic,assign) NSInteger muteAll;     //全体静音状态，已经废弃
@property (nonatomic,assign) NSInteger penState;    //授权画笔状体
@property (nonatomic,strong) NSString * userId;     //用户id


/**
 给相同userId的BKUserSelectStatu同步状态

 @param model BKUserSelectStatu 类型
 */
-(void)stateToUserSelectStatu:(BKUserSelectStatu*)model;


/**
 根据BKUserSelectStatu 创建一个新的BKToolStateModel

 @param model BKUserSelectStatu
 @return BKToolStateModel
 */
-(BKToolStateModel*)userSelectStatuToToolState:(BKUserSelectStatu*)model;

@end

